home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / MPW Interfaces & Libraries / PInterfaces / FileTransfers.p < prev    next >
Encoding:
Text File  |  1992-01-29  |  5.8 KB  |  238 lines  |  [TEXT/MPS ]

  1.  
  2. {
  3. Created: Wednesday, September 11, 1991 at 6:08 PM
  4.  FileTransfers.p
  5.  Pascal Interface to the Macintosh Libraries
  6.  
  7.   Copyright Apple Computer, Inc. 1988-1991
  8.   All rights reserved
  9. }
  10.  
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.  UNIT FileTransfers;
  18.  INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingFileTransfers}
  22. {$SETC UsingFileTransfers := 1}
  23.  
  24. {$I+}
  25. {$SETC FileTransfersIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingPackages}
  28. {$I $$Shell(PInterfaces)Packages.p}
  29. {$ENDC}
  30. {$IFC UNDEFINED UsingCTBUtilities}
  31. {$I $$Shell(PInterfaces)CTBUtilities.p}
  32. {$ENDC}
  33. {$IFC UNDEFINED UsingConnections}
  34. {$I $$Shell(PInterfaces)Connections.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED UsingFiles}
  37. {$I $$Shell(PInterfaces)Files.p}
  38. {$ENDC}
  39. {$SETC UsingIncludes := FileTransfersIncludes}
  40.  
  41. CONST
  42.  
  43. { current file transfer manager version }
  44. curFTVersion = 2;
  45.  
  46. { FTErr    }
  47. ftGenericError = -1;
  48. ftNoErr = 0;
  49. ftRejected = 1;
  50. ftFailed = 2;
  51. ftTimeOut = 3;
  52. ftTooManyRetry = 4;
  53. ftNotEnoughDSpace = 5;
  54. ftRemoteCancel = 6;
  55. ftWrongFormat = 7;
  56. ftNoTools = 8;
  57. ftUserCancel = 9;
  58. ftNotSupported = 10;
  59.  
  60. TYPE
  61. FTErr = OSErr;
  62.  
  63. CONST
  64.  
  65. { FTFlags }
  66. ftIsFTMode = $00000001;
  67. ftNoMenus = $00000002;
  68. ftQuiet = $00000004;
  69. ftConfigChanged = $00000010;
  70. ftSucc = $00000080;
  71.  
  72. TYPE
  73. FTFlags = LONGINT;
  74.  
  75.  
  76. CONST
  77.  
  78. { FTAttributes }
  79. ftSameCircuit = $0001;
  80. ftSendDisable = $0002;
  81. ftReceiveDisable = $0004;
  82. ftTextOnly = $0008;
  83. ftNoStdFile = $0010;
  84. ftMultipleFileSend = $0020;
  85.  
  86. TYPE
  87. FTAttributes = INTEGER;
  88.  
  89.  
  90. CONST
  91.  
  92. { FTDirection }
  93. ftReceiving = 0;
  94. ftTransmitting = 1;
  95.  
  96. TYPE
  97. FTDirection = INTEGER;
  98.  
  99.  
  100. FTPtr = ^FTRecord;
  101. FTHandle = ^FTPtr;
  102. FTRecord = PACKED RECORD
  103.  procID: INTEGER;
  104.  flags: FTFlags;
  105.  errCode: FTErr;
  106.  refCon: LONGINT;
  107.  userData: LONGINT;
  108.  defProc: ProcPtr;
  109.  config: Ptr;
  110.  oldConfig: Ptr;
  111.  environsProc: ProcPtr;
  112.  reserved1: LONGINT;
  113.  reserved2: LONGINT;
  114.  ftPrivate: Ptr;
  115.  sendProc: ProcPtr;
  116.  recvProc: ProcPtr;
  117.  writeProc: ProcPtr;
  118.  readProc: ProcPtr;
  119.  owner: WindowPtr;
  120.  direction: FTDirection;
  121.  theReply: SFReply;
  122.  writePtr: LONGINT;
  123.  readPtr: LONGINT;
  124.  theBuf: ^char;
  125.  bufSize: LONGINT;
  126.  autoRec: Str255;
  127.  attributes: FTAttributes;
  128.  END;
  129.  
  130.  
  131. CONST
  132.  
  133. { FTReadProc messages }
  134. ftReadOpenFile = 0;        { count = forkFlags, buffer = pblock from PBGetFInfo }
  135. ftReadDataFork = 1;
  136. ftReadRsrcFork = 2;
  137. ftReadAbort = 3;
  138. ftReadComplete = 4;
  139. ftReadSetFPos = 6;        { count = forkFlags, buffer = pBlock same as PBSetFPos }
  140. ftReadGetFPos = 7;        { count = forkFlags, buffer = pBlock same as PBGetFPos }
  141.  
  142. { FTWriteProc messages }
  143. ftWriteOpenFile = 0;    { count = forkFlags, buffer = pblock from PBGetFInfo }
  144. ftWriteDataFork = 1;
  145. ftWriteRsrcFork = 2;
  146. ftWriteAbort = 3;
  147. ftWriteComplete = 4;
  148. ftWriteFileInfo = 5;
  149. ftWriteSetFPos = 6;        { count = forkFlags, buffer = pBlock same as PBSetFPos }
  150. ftWriteGetFPos = 7;        { count = forkFlags, buffer = pBlock same as PBGetFPos }
  151.  
  152. { fork flags }
  153. ftOpenDataFork = 1;
  154. ftOpenRsrcFork = 2;
  155.  
  156.  
  157. TYPE
  158. { application routines type definitions }
  159. FileTransferReadProcPtr = ProcPtr;
  160. FileTransferWriteProcPtr = ProcPtr;
  161.  
  162. FileTransferSendProcPtr = ProcPtr;
  163. FileTransferReceiveProcPtr = ProcPtr;
  164.  
  165. FileTransferEnvironsProcPtr = ProcPtr;
  166.  
  167. FileTransferNotificationProcPtr = ProcPtr;
  168. FileTransferChooseIdleProcPtr = ProcPtr;
  169.  
  170. FUNCTION InitFT: FTErr;
  171. FUNCTION FTGetVersion(hFT: FTHandle): Handle;
  172. FUNCTION FTGetFTVersion: INTEGER;
  173.  
  174. FUNCTION FTNew(procID: INTEGER;flags: FTFlags;sendProc: FileTransferSendProcPtr;
  175.  recvProc: FileTransferReceiveProcPtr;readProc: FileTransferReadProcPtr;
  176.  writeProc: FileTransferWriteProcPtr;environsProc: FileTransferEnvironsProcPtr;
  177.  owner: WindowPtr;refCon: LONGINT;userData: LONGINT): FTHandle;
  178.  
  179. PROCEDURE FTDispose(hFT: FTHandle);
  180.  
  181. FUNCTION FTStart(hFT: FTHandle;direction: FTDirection;fileInfo: SFReply): FTErr;
  182. FUNCTION FTAbort(hFT: FTHandle): FTErr;
  183.  
  184. FUNCTION FTSend(hFT: FTHandle;numFiles: INTEGER;pFSSpec: FSSpecArrayPtr;
  185.  notifyProc: FileTransferNotificationProcPtr): FTErr;
  186. FUNCTION FTReceive(hFT: FTHandle;pFSSpec: FSSpecPtr;notifyProc: FileTransferNotificationProcPtr): FTErr;
  187.  
  188. PROCEDURE FTExec(hFT: FTHandle);
  189.  
  190. PROCEDURE FTActivate(hFT: FTHandle;activate: BOOLEAN);
  191. PROCEDURE FTResume(hFT: FTHandle;resume: BOOLEAN);
  192. FUNCTION FTMenu(hFT: FTHandle;menuID: INTEGER;item: INTEGER): BOOLEAN;
  193.  
  194. FUNCTION FTChoose(VAR hFT: FTHandle;where: Point;idleProc: FileTransferChooseIdleProcPtr): INTEGER;
  195. PROCEDURE FTEvent(hFT: FTHandle;theEvent: EventRecord);
  196.  
  197. FUNCTION FTValidate(hFT: FTHandle): BOOLEAN;
  198. PROCEDURE FTDefault(VAR theConfig: Ptr;procID: INTEGER;allocate: BOOLEAN);
  199.  
  200. FUNCTION FTSetupPreflight(procID: INTEGER;VAR magicCookie: LONGINT): Handle;
  201. PROCEDURE FTSetupSetup(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr;
  202.  VAR magicCookie: LONGINT);
  203. FUNCTION FTSetupFilter(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr;
  204.  VAR theEvent: EventRecord;VAR theItem: INTEGER;VAR magicCookie: LONGINT): BOOLEAN;
  205. PROCEDURE FTSetupItem(procID: INTEGER;theConfig: Ptr;count: INTEGER;theDialog: DialogPtr;
  206.  VAR theItem: INTEGER;VAR magicCookie: LONGINT);
  207. PROCEDURE FTSetupXCleanup(procID: INTEGER;theConfig: Ptr;count: INTEGER;
  208.  theDialog: DialogPtr;OKed: BOOLEAN;VAR magicCookie: LONGINT);
  209.  
  210. PROCEDURE FTSetupPostflight(procID: INTEGER);
  211.  
  212. FUNCTION FTGetConfig(hFT: FTHandle): Ptr;
  213. FUNCTION FTSetConfig(hFT: FTHandle;thePtr: Ptr): INTEGER;
  214.  
  215. FUNCTION FTIntlToEnglish(hFT: FTHandle;inputPtr: Ptr;VAR outputPtr: Ptr;
  216.  language: INTEGER): OSErr;
  217. FUNCTION FTEnglishToIntl(hFT: FTHandle;inputPtr: Ptr;VAR outputPtr: Ptr;
  218.  language: INTEGER): OSErr;
  219.  
  220. PROCEDURE FTGetToolName(procID: INTEGER;VAR name: Str255);
  221. FUNCTION FTGetProcID(name: Str255): INTEGER;
  222.  
  223. PROCEDURE FTSetRefCon(hFT: FTHandle;refCon: LONGINT);
  224. FUNCTION FTGetRefCon(hFT: FTHandle): LONGINT;
  225.  
  226. PROCEDURE FTSetUserData(hFT: FTHandle;userData: LONGINT);
  227. FUNCTION FTGetUserData(hFT: FTHandle): LONGINT;
  228.  
  229. PROCEDURE FTGetErrorString(hFT: FTHandle;id: INTEGER;VAR errMsg: Str255);
  230.  
  231.  
  232. {$ENDC} { UsingFileTransfers }
  233.  
  234. {$IFC NOT UsingIncludes}
  235.  END.
  236. {$ENDC}
  237.  
  238.